#ifndef CSTATE_H_
#define CSTATE_H_

#include "factory.h"
#include "gameinterface.h"

enum 
{
	
	STM_QUIT = 0,
	STM_IDLE,
	STM_GOTO_2DRPG,
	STM_GOTO_RPGTRANS,
	STM_GOTO_RPGBATTLE,
	STM_GOTO_DEBUG,
	
};

class CState : public CFactoryObject
{

protected:
  
  CGameInterface * m_pGameInterface;
  int m_iStateMessage;
  
  bool m_bStarted;
  
public:
  
  void SetGameInterface( CGameInterface * );
  
  virtual void Start() { }
  virtual void PreRun() { }
  
  virtual void Input() = 0;
  virtual void Think() = 0;
  virtual void Draw() = 0;

  
  inline int GetMessage()
  {
	  
	  return m_iStateMessage;
	  
  }
  

};

#endif
